using System; 
using System.Collections.Generic; 
using System.Text;
using ActionTrackerEntities;
using FluentNHibernate.Mapping;

namespace ActionTrackerDAO.Mapeos 
{
    public class UsuarioMap : ClassMap<Usuario> {
        
        public UsuarioMap() {
			Table("Usuarios");
			LazyLoad();
			Id(x => x.IdUsuario).GeneratedBy.Identity().Column("IdUsuario");
			Map(x => x.TipoUsuario).Column("TipoUsuario").Not.Nullable();
			Map(x => x.Nombre).Column("Nombre").Not.Nullable().Length(50);
			Map(x => x.Password).Column("Password").Not.Nullable().Length(10);
            Map(x => x.FechaBaja).Column("FechaBaja");
			HasMany(x => x.Acciones).KeyColumn("IdUsuario");

            HasManyToMany(x => x.Proyectos).Table("UsuariosXProyectos")
                .ParentKeyColumn("IdUsuario")
                .ChildKeyColumn("IdProyecto")
                .Cascade.All()
                .Inverse();
        }
    }
}
